/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						 signal.h

	$Header: /heroes4/signal.h $

	$NoKeywords: $

 ************************************************************************/

#if !defined( SIGNAL_H_INCLUDED )
#define SIGNAL_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "owned_ptr.h"

// --------------------------------------------------------------
// wrapper for Windows Event object.  Used for inter-thread or
// inter-process communication
// --------------------------------------------------------------
class t_signal
{
public:
	t_signal();
	~t_signal();

	void set();
	bool wait();
	bool wait( int delay );
	bool wait_for_message( int delay );
protected:
	struct t_data;

	t_owned_ptr<t_data> m_data;
};

#endif // SIGNAL_H_INCLUDED